package cn.jasonone.jame.basic;

import cn.jasonone.jame.model.Point;
import cn.jasonone.jame.model.Rect;

/**
 * 碰撞检测接口
 * @author Jason
 */
public interface Collision {

    /**
     * 是否包含指定坐标
     * @param point 坐标点
     * @return {@code true or false}
     */
    default boolean isContains(Point point){
        return isContains(point.getX(),point.getY());
    }

    /**
     * 是否包含指定坐标
     * @param x 横坐标
     * @param y 纵坐标
     * @return
     */
    public boolean isContains(double x,double y);

    /**
     * 是否包含指定区域
     * @param rect 区域
     * @return 当整个区域在当前区域内部时返回{@code true} 否则返回{@code false}
     */
    public boolean isContains(Rect rect);

    /**
     * 指定区域是否与当前区域相交
     * @param rect 区域
     * @return {@code true or false}
     */
    public boolean isCollision(Rect rect);
}
